.. :validated: 3.2.0

.. _usin_iu_parameters:

Валидация параметров установки/обновления ALD Pro
-------------------------------------------------

Проверка системных требований и входных параметров
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Начиная с версии 3.2.0, утилита ``aldpro-server-install`` выполняет валидацию системных требований и вводимых параметров по умолчанию перед установкой и обновлением контроллера домена. Ключ ``--validate`` помечен как устаревший и не влияет на поведение утилиты.

Общая логика работы
~~~~~~~~~~~~~~~~~~~

1. Все проверки выполняются до начала процесса.

2. Критические проверки (например, проверка прав и одновременного запуска) выполняются отдельно перед запуском остальных проверок. При их провале процесс немедленно прекращается.

3. Остальные проверки представлены в виде перечня (:ref:`usin_validation_parameters`) и сопровождаются записями в лог.

4. Поведение системы зависит от результатов проверок и наличия ключей ``--force`` и ``--unattended``.

Поведение системы при проверках
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. list-table:: Поведение системы при проверках
   :header-rows: 1
   :widths: 20 25 25 30

   * - Статус проверки
     - Поведение по умолчанию
     - При использовании ``--force``
     - При использовании ``--unattended``
   * - error
     - Процесс прерывается
     - Процесс продолжается
     - Процесс прерывается
   * - warning
     - Запрос подтверждения
     - Процесс продолжается
     - Процесс продолжается
   * - success
     - Процесс продолжается
     - Процесс продолжается
     - Процесс продолжается

Ключи CLI для управления поведением
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* ``--validate`` - устаревший, с версии 3.2.0 не влияет на поведение системы.

* ``--force`` - позволяет продолжить установку или обновление даже при наличии ошибок ``error`` и предупреждений ``warning``.

* ``--unattended`` - отключает запрос подтверждения при наличии предупреждений ``warning``. Процесс продолжается автоматически, если не обнаружено ошибок. В случае ошибок ``error`` процесс будет прерван.

.. _usin_validation_parameters:

Проверяемые параметры
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Проверка прав пользователя
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Утилиту необходимо запускать от имени пользователя ``root``.

**Сценарии:** Установка, обновление.

Проверка повторного запуска
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Одновременно может быть запущен только один экземпляр утилиты.

**Сценарии:** Установка, обновление.

Проверка имени домена
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error/Warning

**Обязательные требования (Error):**

**Локализация:**

- Латинские буквы в нижнем регистре (a-z)
- Цифры (0-9)

**Использование специальных символов:**

- Дефис (-)
- Точка (.)

**Структура:**

- Доменное имя должно содержать как минимум одну точку
- Минимум два лейбла (части между точками)
- Каждый лейбл должен быть длиной от 1 до 63 символов

**Ограничения:**

- IP-адреса запрещены
- Не допускаются две точки подряд
- Не допускаются два дефиса подряд
- Дефис не может быть первым или последним символом лейбла
- Первый и последний символ каждого лейбла — только латиница в нижнем регистре или цифра (a-z, 0-9)

**Необязательные требования (Warning):**

- Домен верхнего уровня должен содержать минимум два символа
- Домен верхнего уровня не должен заканчиваться на цифру
- Не рекомендуется использовать зарезервированные имена (даже как часть, заключенную между точками), такие как: ``localhost``, ``test``, ``invalid``, ``PRN``, ``AUX``, ``CLOCK``, ``NUL``, ``COM1`` до ``COM9``, ``LPT1`` до ``LPT9``, ``Total``, ``Maximum``, ``arpa``, ``admin``, ``root``, ``http``, ``map``, ``.local``, ``ftp``, ``mail``, ``mailer``, ``www``, ``dns``

**Сценарии:** Установка, обновление.

Проверка имени хоста
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error/Warning

**Обязательные требования (Error):**

**Локализация:**

- Латинские буквы в нижнем регистре (a-z)
- Цифры (0-9)

**Использование специальных символов:**

- Дефис (-)

**Ограничения:**

- Первый и последний символ: только буквы (a-z) или цифры (0-9)

**Необязательные требования (Warning):**

- Домен верхнего уровня должен содержать минимум два символа
- Домен верхнего уровня не должен заканчиваться на цифру
- Не рекомендуется использовать зарезервированные имена (даже как часть, заключенную между точками), такие как: ``localhost``, ``test``, ``invalid``, ``PRN``, ``AUX``, ``CLOCK``, ``NUL``, ``COM1`` до ``COM9``, ``LPT1`` до ``LPT9``, ``Total``, ``Maximum``, ``arpa``, ``admin``, ``root``, ``http``, ``map``, ``.local``, ``ftp``, ``mail``, ``mailer``, ``www``, ``dns``

**Сценарии:** Установка, обновление.

Проверка FQDN
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error/Warning

**Обязательные требования (Error):**

**Длина:**

- Минимальное количество символов — 5
- Максимальное количество символов — 64

**Локализация:**

- Латинские буквы в нижнем регистре (a-z)
- Цифры (0-9)

**Использование специальных символов:**

- Дефис (-)
- Точка (.)

**Структура:**

- Минимум 3 лейбла (части, разделенные точками)
- Каждый лейбл:

  - От 1 до 63 символов
  - Первый символ — латиница в нижнем регистре или цифра (a-z, 0-9)
  - Последний символ — латиница в нижнем регистре или цифра (a-z, 0-9)

**Ограничения:**

- IP-адреса запрещены
- Не допускаются две точки подряд
- Не допускаются два дефиса подряд
- Дефис не может быть первым или последним символом лейбла
- Первый и последний символ каждого лейбла — только латиница в нижнем регистре или цифра (a-z, 0-9)

**Необязательные требования (Warning):**

- Домен верхнего уровня должен содержать минимум два символа
- Домен верхнего уровня не должен заканчиваться на цифру
- Не рекомендуется использовать зарезервированные имена (даже как часть, заключенную между точками), такие как: ``localhost``, ``test``, ``invalid``, ``PRN``, ``AUX``, ``CLOCK``, ``NUL``, ``COM1`` до ``COM9``, ``LPT1`` до ``LPT9``, ``Total``, ``Maximum``, ``arpa``, ``admin``, ``root``, ``http``, ``map``, ``.local``, ``ftp``, ``mail``, ``mailer``, ``www``, ``dns``

Проверка соответствия имени хоста и домена на FQDN
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:**

1. При установке: значения ``-d`` и ``-n`` должны соответствовать ``hostnamectl``
2. При обновлении: должны совпадать с текущим FQDN машины

**Сценарии:** Установка, обновление.

Проверка пароля администратора
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:**

1. Пароль должен содержать не менее 8 символов
2. Допускается использование только символов ASCII в диапазоне от 32 до 126, за исключением обратного слэша (\)
3. Пароль не должен начинаться или заканчиваться пробелом

**Сценарии:** Установка.

Проверка IP-адреса
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:**

1. IP-адрес должен быть в формате IPv4
2. Использование адреса 127.0.0.1 (localhost) запрещено
3. IP-адрес не должен находиться в зарезервированных диапазонах: 0.0.0.0–0.255.255.255 и 224.0.0.0–255.255.255.255
4. IP-адрес должен совпадать с указанным в ``/etc/network/interfaces``

**Сценарии:** Установка.

Проверка DNS-сервера
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Warning

**Требования:** В файлах ``/etc/resolv.conf`` и ``systemd/resolved.conf`` должен быть указан только 127.0.0.1.

**Сценарии:** Установка.

Проверка наличия IPA
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Warning

**Требования:** На момент установки первого КД **FreeIPA** не должен быть настроен (в файле ``/var/lib/ipa/sysrestore/sysrestore.state`` должно отсутствовать complete = True).

**Сценарии:** Установка.

Проверка количества виртуальных процессоров (CPU)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error/Warning

**Требования:** Система должна иметь не менее двух виртуальных CPU.

**Сценарии:** Установка, обновление.

Проверка объема оперативной памяти (RAM)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error/Warning

**Требования:** Объем доступной оперативной памяти должен составлять не менее 4 ГБ.

**Сценарии:** Установка, обновление.

Проверка объема свободного места на диске
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error/Warning

**Требования:**

1. Раздел / — не менее 10 ГБ
2. Каталог ``/var/lib/dirsrv`` (или ``/var/lib``) — не менее 15 ГБ
3. Каталог /opt — не менее 5 ГБ
4. Каталог /srv — не менее 2 ГБ

**Сценарии:** Установка, обновление.

Проверка учетной записи администратора
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Обновление должно выполняться от привилегированного пользователя с корректными учетными данными.

**Сценарии:** Обновление.

Проверка службы krb5-kdc
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Служба ``krb5-kdc`` должна быть активна.

**Сценарии:** Обновление.

Проверка службы dirsrv
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Служба ``dirsrv`` должна быть активна.

**Сценарии:** Обновление.

Проверка службы bind9-pkcs11
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Служба ``bind9-pkcs11`` должна быть активна.

**Сценарии:** Обновление.

Проверка службы sssd
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Служба ``sssd`` должна быть активна.

**Сценарии:** Обновление.

Проверка службы aldpro-salt-minion
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Служба ``aldpro-salt-minion`` должна быть активна.

**Сценарии:** Обновление.

Проверка наличия LDAP конфликтов
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Warning

**Требования:** В каталоге не должны присутствовать конфликты репликации.

**Сценарии:** Обновление.

Проверка репликации (односторонние соглашения)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Warning

**Требования:** Все соглашения о репликации должны быть двусторонними.

**Сценарии:** Обновление.

Проверка наличия envvar и ipaLocation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** В записи ``cn=masters,...`` должны быть атрибуты ``envvar`` и ``ipaLocation``.

**Сценарии:** Обновление.

Проверка уровня защищенности
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

**Тип ошибки:** Error

**Требования:** Уровень защищенности ALSE должен быть "Смоленск".

**Сценарии:** Установка.
